perm filename PICNIC.SAI[VIS,HPM]1 blob sn#107068 filedate 1974-06-18 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	REQUIRE "PICSUB.REL[VIS,HPM]" LOAD_MODULE
C00005 ENDMK
C⊗;
REQUIRE "PICSUB.REL[VIS,HPM]" LOAD_MODULE;
EXTERNAL INTEGER PICBIT,PICWID,PICHIG,PICLIN,PICSIZ;
INTEGER XXCOUNT,XXBRCHAR,XXEOF,XXPICLOC; BOOLEAN XXFLAG;
EXTERNAL PROCEDURE MAKTAB;
EXTERNAL INTEGER PROCEDURE PIXEL(REFERENCE INTEGER PIX; INTEGER I,J);
EXTERNAL PROCEDURE PUTEL(REFERENCE INTEGER PIX; INTEGER I,J,VALUE);

BOOLEAN PROCEDURE PIXDIM(STRING FILNAM);
 BEGIN
 INTEGER ARRAY BUF[0:'177];
 OPEN(10,"DSK",'10,2,0,XXCOUNT,XXBRCHAR,XXEOF);
 LOOKUP(10,FILNAM,XXFLAG);
 IF XXFLAG THEN
  BEGIN
  CLOSE(10);
  RETURN(FALSE);
  END
 ELSE
  BEGIN
  ARRYIN(10,BUF[0],'200);
  PICBIT←BUF[1];
  PICWID←BUF[6]-BUF[5]+1;
  PICHIG←BUF[4]-BUF[3]+1;
  PICLIN←BUF[2];
  PICSIZ←PICLIN*PICHIG;
  XXPICLOC←(BUF[7] LAND '777777)-'200;
  RETURN(TRUE);
  END;
 END;

PROCEDURE GETPIX(INTEGER ARRAY PICTURE);
 BEGIN INTEGER I;
 FOR I←1 STEP 1 UNTIL XXPICLOC DO WORDIN(10);
 ARRYIN(10,PICTURE[1],PICSIZ);
 CLOSE(10);
 MAKTAB;
 END;
 
PROCEDURE MAKPIX(INTEGER HEIGHT,WIDTH,BITS);
 BEGIN INTEGER WORD;
 PICBIT←BITS;
 PICWID←WIDTH;
 PICHIG←HEIGHT;
 WORD←36%BITS;
 PICLIN←(PICWID+WORD-1)%WORD;
 PICSIZ←PICLIN*PICHIG;
 MAKTAB;
 END;

 
BOOLEAN PROCEDURE PUTPIX(INTEGER ARRAY PICTURE; STRING FILNAM);
 BEGIN
 INTEGER ARRAY BUF[0:'177];
 OPEN(11,"DSK",'10,0,2,XXCOUNT,XXBRCHAR,XXEOF);
 ENTER(11,FILNAM,XXFLAG);
 IF XXFLAG THEN
  BEGIN
  CLOSE(11);
  RETURN(FALSE);
  END
 ELSE
  BEGIN
  BUF[0]←-1;
  BUF[1]←PICBIT;
  BUF[2]←PICLIN;
  BUF[3]←1; BUF[4]←PICHIG;
  BUF[5]←1; BUF[6]←PICWID;
  BUF[7]←((-PICSIZ) LSH 18) LOR '200;
  ARRYOUT(11,BUF[0],'200);
  ARRYOUT(11,PICTURE[1],PICSIZ);
  CLOSE(11);
  RETURN(TRUE);
  END;
 END;